package biz_error

import (
	"fmt"
	"mall_frontend_api/biz/model/error_code"
)

type BizError struct {
	code   error_code.ErrorCode
	msg    string
	logMsg string
}

func NewBizError() *BizError {
	return &BizError{}
}

func (e *BizError) Error() string {
	return e.msg
}

func (e *BizError) SetBadRequestErrorMessage(message string) *BizError {
	e.code = error_code.ErrorCode_BadRequest
	e.msg = message
	return e
}

func (e *BizError) SetServerErrorMessage(message string) *BizError {
	e.code = error_code.ErrorCode_ServerError
	e.msg = message
	return e
}

func (e *BizError) SetLogMessage(message string, ext ...interface{}) *BizError {
	e.logMsg = fmt.Sprintf(message, ext...)
	return e
}

func (e *BizError) GetErrorCode() error_code.ErrorCode {
	return e.code
}

func (e *BizError) GetErrorMessage() string {
	return e.msg
}

func (e *BizError) GetLogMessage() string {
	return e.logMsg
}
